import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { NzModalModule } from 'ng-zorro-antd/modal';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { PortalComponent } from './pages/portal/portal.component';
import { HttpClientModule } from "@angular/common/http";
import {NzImageModule} from "ng-zorro-antd/experimental/image";
import {NzFormModule} from "ng-zorro-antd/form";
import {NzDescriptionsModule} from "ng-zorro-antd/descriptions";
import {NzMessageModule} from "ng-zorro-antd/message";
import {NzIconModule} from "ng-zorro-antd/icon";
import {NzProgressModule} from "ng-zorro-antd/progress";
import { LogOutComponent } from './pages/log-out/log-out.component';
import { DeterminantComponent } from './pages/determinant/determinant.component';
import {NzLayoutModule} from "ng-zorro-antd/layout";
import {NzListModule} from "ng-zorro-antd/list";
import {NzAvatarModule} from "ng-zorro-antd/avatar";
import { PrefaceComponent } from './pages/preface/preface.component';
import { MatrixComponent } from './pages/matrix/matrix.component';
import { VectorGroupComponent } from './pages/vector-group/vector-group.component';
import { LinearEquationComponent } from './pages/linear-equation/linear-equation.component';
import { EigenvalueAndEigenvectorComponent } from './pages/eigenvalue-and-eigenvector/eigenvalue-and-eigenvector.component';
import { QuadraticFormComponent } from './pages/quadratic-form/quadratic-form.component';
import { FormulaComponent } from "./pages/formula/formula.component";
// 提取所有图标
import * as AllIcons from '@ant-design/icons-angular/icons';
import {NzInputModule} from "ng-zorro-antd/input";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import {NzBadgeModule} from "ng-zorro-antd/badge";
import {NzToolTipModule} from "ng-zorro-antd/tooltip";
import { LoginComponent } from './pages/login/login.component';
const antDesignIcons = Object.keys(AllIcons)
  .map(key => (AllIcons as any)[key])
  .filter(icon => icon);

@NgModule({
  declarations: [
    AppComponent,
    PortalComponent,
    LogOutComponent,
    DeterminantComponent,
    PrefaceComponent,
    MatrixComponent,
    VectorGroupComponent,
    LinearEquationComponent,
    EigenvalueAndEigenvectorComponent,
    QuadraticFormComponent,
    FormulaComponent,
    LoginComponent,
  ],
    imports: [
        BrowserModule,
        AppRoutingModule,
        NzModalModule,
        BrowserAnimationsModule,
        HttpClientModule,
        NzImageModule,
        NzFormModule,
        NzDescriptionsModule,
        NzIconModule,
        NzMessageModule,
        NzProgressModule,
        NzLayoutModule,
        NzListModule,
        NzAvatarModule,
        NzIconModule.forRoot(antDesignIcons),
        NzInputModule,
        FormsModule,
        NzBadgeModule,
        NzToolTipModule,
        ReactiveFormsModule,
    ],
  bootstrap: [AppComponent]
})
export class AppModule { }
